import { tokenKey } from '@/variables/storageVariables'

/**
 * 根据 键名 获取 session 数据
 * @param {仓库键名} itemName
 */
export function getSessionItem(itemName) {
  const name = tokenKey + itemName
  const tokenContent = JSON.parse(window.sessionStorage.getItem(name))
  return tokenContent
}

/**
 * 根据 键名 存储 session 数据
 * @param {仓库键名} itemName
 * @param {存储内容} tokenContent
 */
export function setSessionItem(itemName, tokenContent) {
  const name = tokenKey + itemName
  window.sessionStorage.setItem(name, JSON.stringify(tokenContent))
}

/**
 * 清空 sessionStorage 的数据
 */
export function clearSessionStorage() {
  window.sessionStorage.clear()
  clearLocalStorage()
}

/**
 * 清空 localStorage 的数据
 */
function clearLocalStorage() {
  const localLength = window.localStorage.length
  const keyList = []
  for (var i = 0; i < localLength; i++) {
    // 获取 key 索引从0开始
    var getKey = localStorage.key(i)
    // 放进数组
    getKey.includes(tokenKey) && keyList.push(getKey)
  }
  keyList.forEach(item => window.localStorage.removeItem(item))
}

/**
 * 根据 键名 存储 local 数据
 * @param {仓库键名} itemName
 * @param {存储内容} tokenContent
 */
export function setLocalItem(itemName, tokenContent) {
  const name = tokenKey + itemName
  window.localStorage.setItem(name, JSON.stringify(tokenContent))
}

/**
 * 根据 键名 获取 session 数据
 * @param {仓库键名} itemName
 */
export function getLocalItem(itemName) {
  const name = tokenKey + itemName
  const tokenContent = JSON.parse(window.localStorage.getItem(name))
  return tokenContent
}
